I am looking for a DXL that can be used to create partial views of a table

Westinghouse unfortunately uses DOORS Tables alot due to importing from Word....The attachment they sent shows some Views they are trying to do via DXL...I think they are using filtering to do what they want, but for some reason they want a DXL script to do it for some reason....I looked in the DXL library to see if anything close existed, but didn't find any...Based upon your experiences do you know of any DXL that might exist?...They said they were at some show and saw defense contractor have some????

Jim Hays
Senior Systems Engineer
ELM Systems Engineering
IBM Rational Software
Phone: 614-286-8229
haysji@us.ibm.com


Forwarded by Jim Hays/Columbus/IBM on 11/13/2009 12:11 PM
From: "August, Thomas W." <augusttw@westinghouse.com>
To: Jim Hays/Columbus/IBM@IBMUS
Date: 11/12/2009 05:04 PM
Subject:

Hi Jim,

Thanks for helping.

I am looking for a DXL that can be used to create partial views of a table without changing modifying the actual table.
Please attached examples.

Thomas W. August
Requirements Engineering
Westinghouse Nuclear Services - RRAS
600 Cranberry Woods Drive
Cranberry TWP, PA 16066
Phone: (412) 374-3855
Email: augusttw@westinghouse.com
Home Page: http://worldwide.westinghousenuclear.com/NuclearServices/A3f.asp
SystemAdmin - Mon Nov 16 15:23:11 EST 2009

Re: I am looking for a DXL that can be used to create partial views of a table
doors36677 - Mon Nov 16 15:37:14 EST 2009

From looking at your view it appears they are using a filter to select cells.

Mostly like the filter is made up of accept and reject -- here is a prototype for you to tailor. -- in payment you can contribute to your favorite charity.
 

Object o  
filtering off  
// following loop only accesses displayed objects 
// cycle through all displayed objects  
for o in current Module do 
{   bool accepted = false 
    Link l 
    for l in o->"*" do 
    {  // accept o if any out going links 
        accept o 
        accepted = true 
        break 
    }  
    if (!accepted) 
    {         reject o   // no outgoing links, reject o  
    } 
}  
filtering on

Re: I am looking for a DXL that can be used to create partial views of a table
SystemAdmin - Mon Nov 16 15:51:05 EST 2009

Hi Jim,

This is really more of an exercise in filtering than DXL. You will need to use the DOORS filtering tool to define a filtering equation that will only show you specific table cells, rows, columns, whatever. As this equation could be complex, you may need to use the filter tool in Advanced mode.

There are no specific built-in filtering equations just for DOORS tables, so you will have to define an equation based on some sort of module object attribute criteria. You will need to create one or more object attributes that will be specifically used to manually enter some data that will categorise each cell of a table - remembering that each cell of a DOORS table is effectively the same as any other DOORS module object, except for the fact that they are displayed on the screen in a 2 dimensional structure. A filter can then be defined using those attributes to only show table cells that match your categorisation criteria. Once your happy with the filter equations, you can then create module views with the "Filtering" option enabled so that the view will execute that filter whenever it is selected.

So no DXL really required here unless you want to provide some sort of GUI for users to build up their own filter expression based on the categorisation attributes that I mentioned above.


Paul Miller

Re: I am looking for a DXL that can be used to create partial views of a table
llandale - Mon Nov 16 18:32:58 EST 2009

It looks like they want to see the entire row of a table if any of its cells qualify, in this case with no data. Otherwise hide the entire row.

So. User loads any view (even with a filter) and then runs your DXL to narrow display of the rows.
 

bool   DoesCellQualify(Object obj)
{     // Determine if the obj, which is a cell, qualifies for showing.
      // You add your code here, returning true of false
}      // end DoesCellQualify()
 
Object   obj, oCell
bool     Qualifies
 
for obj in entire mod do
{  if     (cell(obj))       {}  // do nothing, let Row logic figure this out
   elseif (isVisible(obj))  accept obj
   elseif (table(obj))      accept obj
   elseif (!row(obj))       reject obj
   else
   {     // Row object.
      Qualifies = false
      for oCell in obj do
      {  Qualifies = Qualifies or DoesCellQualify(oCell)
      }
      for oCell in obj do
      {  if (Qualified)
              accept oCell
         else reject oCell
      }  // end dispose of cells in the row
   }     // end dealing with a row
}        // end for all objects
current = mod
filtering(on)

 

 

  • Louie

 

 

Re: I am looking for a DXL that can be used to create partial views of a table
Mathias Mamsch - Tue Nov 17 03:29:45 EST 2009

llandale - Mon Nov 16 18:32:58 EST 2009

It looks like they want to see the entire row of a table if any of its cells qualify, in this case with no data. Otherwise hide the entire row.

So. User loads any view (even with a filter) and then runs your DXL to narrow display of the rows.
 

bool   DoesCellQualify(Object obj)
{     // Determine if the obj, which is a cell, qualifies for showing.
      // You add your code here, returning true of false
}      // end DoesCellQualify()
 
Object   obj, oCell
bool     Qualifies
 
for obj in entire mod do
{  if     (cell(obj))       {}  // do nothing, let Row logic figure this out
   elseif (isVisible(obj))  accept obj
   elseif (table(obj))      accept obj
   elseif (!row(obj))       reject obj
   else
   {     // Row object.
      Qualifies = false
      for oCell in obj do
      {  Qualifies = Qualifies or DoesCellQualify(oCell)
      }
      for oCell in obj do
      {  if (Qualified)
              accept oCell
         else reject oCell
      }  // end dispose of cells in the row
   }     // end dealing with a row
}        // end for all objects
current = mod
filtering(on)

 

 

  • Louie

 

 

I guess the easiest way would be to define two DXL attributes:

"table row" and "table column" which will calculate the row and column of the current cell. Afterwards you can use the DXL attribute values in your filters.

Regards, Mathias